--- qemu-1.7.0.org/kvm-all.c
+++ qemu-1.7.0/kvm-all.c
@@ -374,6 +374,19 @@
     return 0;
 }
 
+#ifndef HAVE_FFSL
+#include <limits.h>
+#if ULONG_MAX == UINT_MAX
+#define ffsl(X) ffs(X)
+#else
+static int ffsl(long i) {
+    unsigned long x = i & -i;
+    if (x <= 0xffffffff) return ffs (i);
+    else return 32 + ffs (i >> 32);
+}
+#endif
+#endif
+
 /* get kvm's dirty pages bitmap and update qemu's */
 static int kvm_get_dirty_pages_log_range(MemoryRegionSection *section,
                                          unsigned long *bitmap)
